/**
数据验证（表单验证）
来自 grace.hcoder.net 
作者 hcoder 深海
*/



const Check = {

	newCreate() {
		let self = {};
		self.error = [];
		self.clear = function() {
			self.error = [];
		}
		
		/**
		 * @param {Object} data
		 * @param {Object} checkRule 1,10 1-10个字符长度
		 * @param {Object} errmsg
		 * 
		 */
		self.isstr = function(data, checkRule, errOrg) {
			var reg = new RegExp('^.{' + checkRule + '}$');
			if (!reg.test(data)) {
				self.error.push(errOrg+'应为'+checkRule+'个字符') ;
			}
			return self;
		}
		self.isint = function(data, errOrg) {
			var reg = /^-?[1-9][0-9]?$/;
			if (!reg.test(data)) {
				self.error.push(errOrg+'不是整型数值');
			}
			return self;
		}
		self.isnumber = function(data, errOrg) {
			var reg = /^-?[1-9][0-9]?.?[0-9]*$/;
			if (!reg.test(data)) {
				self.error.push( errOrg+'不是数值');
			}
			return self;
		}
		self.isfloat = function(data, errOrg) {
			var reg = /^-?[0-9][0-9]?.+[0-9]+$/;
			if (!reg.test(data)) {
				self.error.push(errOrg+'不是浮点数值');
			}
			return self;
		}
		self.between = function(data,checkRule, errOrg) {
			var minMax = checkRule.split(',');
			minMax[0] = Number(minMax[0]);
			minMax[1] = Number(minMax[1]);
			if (data > minMax[1] || data < minMax[0]) {
				self.error.push( errOrg + '不在' + checkRule + '之间');
			}
			return self;
		}
		self.issame = function(data1,data2, errmsg) {
			if (data1 != data2) {
				self.error.push(errmsg);
			}
			return self;
		}
		self.nosame = function(data1,data2, errmsg) {
			if (data1 == data2) {
				self.error.push( errmsg);
			}
			return self;
		}
		self.ismail = function(data,errmsg) {
			var reg = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
			if (!reg.test(data)) {
				self.error.push( errmsg||'电子邮箱不正确');
			}
			return self;
		}
		self.isphone = function(data, errmsg) {
			var reg = /^1[0-9]{10,10}$/;
			if (!reg.test(data)) {
			self.error.push(errmsg||'手机号码不正确');
			}
			return self;
		}
		self.iszip = function(data, errOrg) {
			var reg = /^[0-9]{6}$/;
			if (!reg.test(data)) {
				self.error.push( errOrg + '不是压缩数据');
			}
			return self;
		}

		self.isin = function(data, checkRule, errOrg) {
			if (checkRule.indexOf(data) == -1) {
				self.error.push(errOrg + '不在'+checkRule+'中');
			}
			return self;
		}
		self.notnull = function(data, errmsg) {
			if (data == null || data.length < 1) {
				self.error.push( errmsg);
			}
			return self;
		}
		
		return self;
	}


}
const ocheck = Check.newCreate();
export default ocheck;
